package parsing;

import java.lang.annotation.*;

/**
 * Used for tokens that should be tried after other tokens have already been
 * attempted for matching.
 * 
 * The "order" parameter should be at least 1 (0 is the default if this
 * annotation is not included). The higher it is, the later the token is tried.
 * Ordering between tokens with the same value is unspecified.
 * 
 * @author Misha
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Delay
{
    /**
     * The value by which this type of expression is delayed -- should be at
     * least 1 to have an effect.
     * 
     * The higher this is, the later the token is tried to match an expression.
     */
    int order();
}
